using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 控制按钮点击播放动画，以及在动画事件中控制图片显示与隐藏的脚本。
/// </summary>
public class ButtonAnimationImageController : MonoBehaviour
{
    // ButtonAnimationController 原有字段
    /// <summary>
    /// 要播放动画的目标对象的 Animation 组件。
    /// </summary>
    public Animation targetAnimation;

    /// <summary>
    /// 要播放的动画名称。
    /// </summary>
    public string animationName;

    /// <summary>
    /// 用于触发动画的按钮。
    /// </summary>
    public Button triggerButton;

    // AnimationEventImageController 原有字段
    /// <summary>
    /// 需要隐藏的图片。
    /// </summary>
    public Image imageToHide;

    /// <summary>
    /// 需要显示的图片。
    /// </summary>
    public Image imageToShow;

    /// <summary>
    /// 在脚本实例被加载时调用，初始化按钮点击事件。
    /// </summary>
    private void Start()
    {
        if (triggerButton != null)
        {
            triggerButton.onClick.AddListener(PlayAnimation);
        }
    }

    /// <summary>
    /// 播放指定的动画。
    /// </summary>
    private void PlayAnimation()
    {
        if (targetAnimation != null && !string.IsNullOrEmpty(animationName))
        {
            targetAnimation.Play(animationName);
        }
    }

    /// <summary>
    /// 动画事件触发时调用，控制图片的显示与隐藏。
    /// </summary>
    public void ToggleImages()
    {
        if (imageToHide != null)
        {
            imageToHide.gameObject.SetActive(false);
        }

        if (imageToShow != null)
        {
            imageToShow.gameObject.SetActive(true);
        }
    }
}